﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace Mantenimiento.Negocio
{
    [Serializable]
    public class Explotacion
    {
        #region CAMPOS
        private int _id;
        private string _nombre;
        private string _descripcion;
        #endregion 

        #region PROPIEDADES
        public int Id
        {
            get { return _id; }
            set { _id = value; }
        }
        public string Nombre
        {
            get { return _nombre; }
            set { _nombre = value; }
        }
        public string Descripcion
        {
            get { return _descripcion; }
            set { _descripcion = value; }
        }
        #endregion

        #region CONSTRUCTORES
        public Explotacion()
        {
            _id = int.MinValue;
        }
        public Explotacion(DataRow dr)
        {
            _id = int.Parse(dr["ID"].ToString());
            _nombre = dr["Nombre"].ToString();
            _descripcion = dr["Descripcion"].ToString();
        }
        #endregion


        #region METODOS
        public void guardar()
        {
            if (_id == int.MinValue)
            {
                // SI EL REGISTRO NUEVO, LO INSERTAMOS EN LA BASE DE DATOS.
                _id = CAD.Explotacion.insertar(_nombre,_descripcion);
            }
            else
            {
                _id = CAD.Explotacion.guardar(_id, _nombre, _descripcion);
            }
        }
        public void eliminar()
        {
            _id = CAD.Explotacion.eliminar(_id);
        }
        #endregion

        #region METODOS ESTATICOS DE CLASE
        public static List<Explotacion> obtenerTodas()
        {
            List<Explotacion> lista = new List<Explotacion>();
            DataTable dt = CAD.Explotacion.buscar();
            foreach (DataRow dr in dt.Rows)
            {
                try
                {
                    lista.Add(new Explotacion(dr));
                }
                catch (Exception ex)
                {
                }
            }
            return lista;
        }
        public static Explotacion obtener(int pId)
        {
            try
            {
                DataTable dt = CAD.Explotacion.buscar(pId);
                if (dt.Rows.Count == 1)
                {
                    Explotacion m = new Explotacion(dt.Rows[0]);
                    return m;
                }
                else
                {
                    return null;
                }
            }
            catch (Exception ex)
            {
                return null;
            }
        }
        #endregion
    }
}
